<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<script type="text/javascript" src="js/jquery.js"></script>
		<title>jQuery插件</title>
	</head>

	<body>
		<pre>
			1、在插件中使用别名
				(function($){
					//在这里添加代码
				})(jQuery);
			2、<a href="Test1.html">添加新的全局函数</a>
				(function($){
					$.sum = function(array){
						//在这里添加代码
					};
				})(jQuery);
				我们就可以在使用这个插件的任何代码中，调用sum
				$.sum();
				<a href="Test2.html">扩展全局jQuery对象</a>
					利用$.extend()函数，可以通过另一种语法来定义全局函数。
					(function($){
						$.extend({
							sum: function(array){
							},
							average: fucntion(array){
							}
						});						
					})(jQuery);
					调用$.extend()就可以给全局jQuery对添加属性，如果原来有相同的属性，就会替换原来的属性。
				<a href="Test3.html">使用命名空间隔离函数</a>
					(function($){
						$.mathUtils = {
							sum : function(array){
							},
							average:function(array){
							}
						};
					})(jQuery);
					这种模式本质是为所有的全局函数又创建了一个命名空间(jQuery,mathUtils)，实际上sum、average
					已经成了mathUtils对象的方法了，而mathUtils对象则保存在jQuery对象的属性中。
					调用他们时必须加上插件名字：$.mathUtils.sum(); $.mathUtils.average()
					使用这种方法可以避免全局函数污染命名空间。
					
			3、<a href="Test4.html">添加jQuery对象的方法</a>
				jQuery.fn对象是jQuery.prototype的别名。
				jQuery.fn.myMethod = function(){
					alert("Hello World !");
				}
				调用：$("#divId").myMethod();
				<a href="Test4.1.html">对象方法的上下文</a>
					在任何插件方法的内部，关键字this引用的都是当前的jQuery对象。
					因而，可以在this上面调用任何内置的jQuery方法，或者提取它包含的DOM节点并操作该节点。
				<a href="Test4.html">隐式迭代</a>
					在对象方法体内，关键字this引用的是一个jQuery对象，但在每次调用的.each()方法中，this引用的则是一个DOM元素。
					jQuery的选择符表达式可能会匹配零、一或者多个元素。而我们应该独立检查和操作每一个元素。
					调用.each()方法内部，this依次引用每个DOM元素,因此可以调整代码依次检测每个匹配的元素，并为它们应用相应的类。
				<a href="Test5.html">方法连缀</a>
					为了使用户能够正常的使用连缀行为，我们必须在所有插件方法中返回一个jQuery对象，除非相应的方法明显用于取得不同的信息。
					返回的jQuery对象通常就是this所引用的对象。如果我们使用.each()迭代遍历this，那么可以只返回迭代的结果。
			4、提供灵活的方法参数
				参数对象
				默认参数
				回调函数
				可定制的默认值
		</pre>
	</body>

</html>